The invention relates to selecting data for synchronization. Data synchronization is an operation in which a correspondence is provided between the data collections of at least two databases to the effect that, after the synchronization, the data units of the data collections substantially correspond to each other. The term ‘database’ should be understood in its broad sense to relate to any data collection which resides in a data source or data storage and which can be updated using one or more applications.
Along with the increasing popularity of new networking terminals, such as portable computers, PDA (Personal Digital Assistant) devices, mobile stations and pagers, the need for data synchronization has increased as well. Data of calendar and electronic mail applications in particular are typical examples of data that need to be synchronized. Synchronization has conventionally been based on different proprietary protocols, which are not compatible with each other. However, in mobile communications in particular, it is important that data can be obtained and updated irrespective of the terminal and application in use.
For improved synchronization of application data, a Synchronization Mark-up Language (SyncML) based on the Extensible Mark-up Language (XML) has been developed. A SyncML synchronization protocol employing messages of SyncML format allows the data of any application to be synchronized between any networked terminals. The SyncML synchronization protocol functions both in wireless and in fixed networks and supports a plural number of transmission protocols. SyncML provides both a synchronization protocol and a data representation protocol.
The implementation of data synchronization is described in the SyncML standard, but the standard does not specify in detail how to select the data that is to be synchronized. Typically, the amount of data on a server or desktop computer considerably exceeds the capacity of a portable device. Even larger portable terminals, such as portable computers, are not necessarily able to store all the data needed by the user, for example copies of every important document contained in a company's data system. If synchronization is carried out over the radio interface, further restrictions are caused by the available bandwidth. From the user's point of view, synchronization over the radio interface may appear to be too slow, and in a mobile communications network the transmission costs may be too high. Consequently, it is necessary to restrict the amount of data to be synchronized by selecting only a subset of the data for synchronization. This may be called ‘adaptive synchronization’. However, it is not easy to select the subset. For example, when electronic mail messages are to be synchronized, subsets such as ‘New Items’, ‘Outgoing Items’ and ‘Deleted Items’ could be useful. However, among the New Items, there may be a message that refers to a previous one on the same subject, in which case an important message might be inaccessible to the user. The selecting of the data to be synchronized thus depends on various factors, such as the application concerned, the terminal and the needs of the user.
In the prior art, adaptive synchronization is restricted to certain application-specific techniques that simply allow specific data units to be excluded from the data to be synchronized. A typical example is to rule out electronic mail attachment files. U.S. Pat. No. 6,052,735 discloses a method in which only some of the attachment files of electronic mail messages are synchronized between a computer and a wireless terminal. The synchronization may be based on the user's choice or on filtering, in which case only pre-determined attachment files will be synchronized. In that case only electronic mail messages transferred according to a specific transfer technique can be synchronized. However, U.S. Pat. No. 6,052,735 does not provide a solution for efficient selection of the data to be synchronized. In addition, prior art solutions do not take into account the different needs of applications. The SyncML protocol provides a kind of an adaption possibility in which the server is aware of the restrictions of the terminal. This means that the terminal application does not need to support all fields of a data unit and the amount of data can thus be reduced. Nevertheless, all data units are still fetched to the terminal in this case, too.